package br.com.knowledge.helper;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;
import br.com.knowledge.view.struts.objects.FileLoad;

public class ManipulationFile {
	
	public static List<FileLoad> cargaArquivos(String extensoesLinguagem , String path){
		List<FileLoad> listFile = new ArrayList<FileLoad>();

			final String extensaoFind[]=extensoesLinguagem.split(";");
			for(int i=0;extensaoFind.length>i;i++){
				String tempExtensao = extensaoFind[i].trim();
				if( tempExtensao.indexOf("*")>-1){
					tempExtensao=tempExtensao.substring(tempExtensao.indexOf("*")+1, tempExtensao.length());
				}
				
				final String extensao=tempExtensao;
				 File diretorio = new File(path); 
			        File[] listaArquivos = diretorio.listFiles(new FileFilter() {  
			            public boolean accept(File pathname) {
			                return pathname.getName().toLowerCase().endsWith(extensao);  
			            }   
			        }); 		  
			        if(listaArquivos!=null){ 
			            int length = listaArquivos.length; 		  
			            for(int j = 0; j < length; ++j){ 
			                File arquivo = listaArquivos[j];
			        		FileLoad arquivoNovo = new FileLoad();		            
			                if(arquivo.isFile()){ 
			                	arquivoNovo.setPathLoad(path);
			                	arquivoNovo.setNameLoad(arquivo.getName());
			                /*	try {
									arquivoNovo.setFileLoad(FileUtils.readFileToString(arquivo, "UTF-8"));
								} catch (IOException e) {
									// TODO Auto-generated catch block
									e.printStackTrace();
								}*/
								listFile.add(arquivoNovo);
			                } 
			                else if(arquivo.isDirectory()){ 
			                	//arrayFiles.add(f.getName());
			                } 
			            } 
			        }    
			}		
		return listFile;
	}
	
}
